To an ever increasing degree, forms of human communication such as voice, music, and video are transported in compressed digital form, both in wired and wireless systems. The accuracy of the conversion of signals such as these to their compressed digital counterparts, and back again, is an important consideration in communication system development and operation. To help ensure the consistent reproduction of these signals, the encoding and decoding (“media coding”) algorithms used are precisely defined in standards. For example, some of the standards which specify the behavior of a voice encoder or decoder (“vocoder”) do so in terms of the expected vocoder digital output response to an input sequence of digital test vectors. A subset of vocoder implementations may be validated by first initializing the vocoder to a known state, and then verifying that the output bits of the encoder or decoder exactly match that defined by the applicable standard for each defined test vector. This method of testing is referred to as “bit exact” testing.
To enable bit-exact testing, the developers of some vocoder standards have incorporated the detection of a “homing sequence” into the encoder and decoder specifications. A homing sequence allows the encoder or decoder to be reset to a known “initial” or “starting” state. For example, the vocoders defined by International Telecommunications Union—Telecommunications Standardization Sector (ITU-T) Recommendation G.726, and the Global System for Mobile Communications (GSM) Adaptive Multi-Rate Transcoder standard (described in European Telecommunication Standards Institute (ETSI) EN 301 703) are examples of two vocoders that recognize homing sequences. Most vocoder standards currently in use, however, do not specify homing sequences, making real-time, bit-exact testing of the majority of vocoders a difficult task.
Vocoders are typically implemented as software processes running on a digital signal processor (DSP), and development and testing of vocoder software is generally done using an integrated circuit device (“chip”) simulator. Such systems do not normally run at the full operating speed of the chip on which the vocoder algorithms will eventually be used. Because of this, many vocoder software implementations have not been fully verified while running in a real-time environment.
Complicating the testing of vocoder software is that fact that in use, a single vocoder device may encode and decode speech data for a large number of voice channels, where each voice channel is processed using any one of a number of different vocoder standards. At any point in time, each encoder or decoder algorithm may be in any one of a number of states, which makes complete testing of a vocoder system designed to support tens or even hundreds of voice channels an extremely difficult task. When software problems are suspected, it may be difficult to reproduce the exact software state in which the error occurs due to the vast number of variables involved, and the difficulty of testing the system under normal operating conditions.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.